package cn.iocoder.yudao.module.eval.controller.admin.employee.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 员工培训记录保存 Request VO")
@Data
public class EvalEmployeeTrainingRecordSaveReqVO {

    @Schema(description = "编号", example = "1")
    private Long id;

    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    @Schema(description = "培训名称", example = "Java高级培训")
    private String trainingName;

    @Schema(description = "培训类型", example = "技能培训")
    private String trainingType;

    @Schema(description = "培训机构", example = "培训中心")
    private String trainingOrganization;

    @Schema(description = "开始时间", example = "2024-01-01")
    private LocalDateTime startDate;

    @Schema(description = "结束时间", example = "2024-01-31")
    private LocalDateTime endDate;

    @Schema(description = "培训时长", example = "40")
    private Integer trainingHours;

    @Schema(description = "培训内容", example = "Java高级编程技术")
    private String trainingContent;

    @Schema(description = "培训成绩", example = "85")
    private String trainingScore;

    @Schema(description = "是否通过", example = "true")
    private Boolean isPassed;

    @Schema(description = "证书编号", example = "TRAIN001")
    private String certificateNumber;

    @Schema(description = "证书颁发机构", example = "培训中心")
    private String certificateOrganization;

    @Schema(description = "证书有效期", example = "2025-12-31")
    private LocalDateTime certificateExpireDate;

    @Schema(description = "培训费用", example = "2000.00")
    private Double trainingCost;

    @Schema(description = "费用承担方", example = "公司")
    private String costBearer;

    @Schema(description = "备注", example = "培训效果良好")
    private String remarks;

}
